home *** CD-ROM | disk | FTP | other *** search
- {
-
- Program to demonstrate the method for saving the display to a
- buffer, then restoring it later.
-
- 10/28/86 MJC
-
- Use this in any way you like, but we can't guarantee this programs
- fitness for any particular purpose. Have fun!
-
- }
-
- PROGRAM Scrnsave;
-
- TYPE
-
- Screen = PACKED ARRAY [ 1..32000 ] of BYTE;
- S_Ptr = ^Screen; { pointer to screen data }
-
-
- VAR
-
- Scn_buf : Screen; { a place to stash the screen }
- Scn_ptr : S_Ptr; { a pointer to screen }
-
-
- FUNCTION Physbase : S_Ptr; { xbios routine returns address of screen }
- Xbios( 2 );
-
-
- PROCEDURE Sav_scn; { proc saves screen to buf }
- {$P-} { turn pointer checking off }
-
- begin
- Scn_ptr := Physbase; { get addr of screen in memory }
- Scn_buf := Scn_Ptr^; { do assignment, copy entire array }
- end;
-
- {$P=} { restore pointer checking to old state }
-
-
- PROCEDURE Rest_scn; { restore screen from buf }
- {$P-} { turn pointer checking off }
-
- begin
- Scn_ptr := Physbase; { get addr of screen in memory }
- Scn_ptr^ := Scn_buf; { assign, copy array }
- end;
-
- {$P=} { set pointer checking to old state }
-
- BEGIN
- Writeln( 'This is a test - Press RETURN' );
- Readln;
- Sav_scn;
- Writeln( 'Screen has been saved' );
- Writeln;
- Writeln;
- Writeln( 'Press RETURN' );
- Readln;
- Rest_scn;
- Writeln( ' Screen was just restored - PRESS RETURN ' );
- Readln;
- END.
-
- { END OF FILE: SCNSAVE.PAS }
-